home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / patches / alertpatch / alertpatch.guide (.txt) < prev    next >
Amigaguide Document  |  1996-04-07  |  26KB  |  519 lines

  1. @DATABASE "AlertPatch 3.0"
  2. @NODE MAIN "AlertPatch 3.0 (9.3.94)"
  3.     AlertPatch v3       Copyright (C)1992,93,94 David Swasbrook.
  4.     =============
  5.   @{" Disclaimer         "    LINK Disclaimer    }    Legal information
  6.   @{" Shareware          "    LINK Conditions    }    Shareware information
  7.   @{" Introduction       "    LINK Introduction    }    Introduction to AlertPatch
  8.   @{" How to Install     "    LINK Installation    }    How to install AlertPatch
  9.   @{" Usage              "    LINK Usage    }    How to use AlertPatch
  10.   @{" Configuration      "    LINK Configure    }    Adjusting the settings
  11.   @{" Update Information "    LINK Updates    }    How to get the latest AlertPatch version
  12.   @{" Patch Information  "    LINK PatchInfo    }    How to detect the patch
  13.   @{" Special Thanks     "    LINK Thanks    }    Thankyou for your ideas/support
  14.   @{" History            "    LINK History    }    A very brief history of AlertPatch
  15. @ENDNODE
  16. -------------------------------------------------------------------------------
  17. @NODE Disclaimer "Its not my fault..."
  18. Disclaimer
  19. **********
  20.     AlertPatch is supposed to be a replacement function for the
  21.     exec.library/Alert function. Operations of this type are always
  22.     risky, as when an alert occurs the system is in an inconsistent
  23.     and/or defective state.
  24.     I hereby reject any liability or responsibility for these or any
  25.     other consequences from the use of AlertPatch whatsoever. This
  26.     includes, but is not limited to, damage to your equipment, to your
  27.     data, personal injuries, financial loss or any other kinds of side
  28.     effects.
  29.     Although AlertPatch has been tested thoroughly on several different
  30.     machines, I cannot rule out the possibility that AlertPatch
  31.        o is somehow incompatible to your equipment
  32.        o has bugs that show up on your equipment
  33.        o does not do what it is supposed to do on your equipment
  34.     It is your responsiblity to take any precautions necessary to
  35.     protect yourself from these or any other effects. I explicitly
  36.     reject any liability or responsibility from the consequences of you
  37.     using AlertPatch.
  38.     Swaz.
  39. @ENDNODE
  40. -------------------------------------------------------------------------------
  41. @NODE Conditions "Shareware distribution info..."
  42. Shareware
  43. *********
  44.     AlertPatch is shareware. The program may be freely distributed and
  45.     copied, as long as the following conditions are fulfilled:
  46.        o The sales price must not be higher than the cost of an (empty)
  47.          disk plus a nominal copying fee plus costs for shipping. The total
  48.          price must not be higher than 5 US$.
  49.        o All parts of the program and the documentation must be complete.
  50.          The distribution of single parts or incomplete subsets of the
  51.          original distribution is NOT ALLOWED.
  52.        o AlertPatch or parts of it may not be sold in combination with or
  53.          as part of commercial software.
  54.        o Program and documentation may not be changed in any way.
  55.        o Permission has been given for distribution through Aminet and
  56.          Fred Fish.
  57.     AlertPatch is shareware, this means I request those users, who
  58.     use AlertPatch, to send me the shareware fee of 10 US$ (or any other
  59.     contributions gratefully accepted) to the following address:
  60.     Postal:       David Swasbrook,
  61.                   43 Pickwick Parade,
  62.                   Howick,
  63.                   Auckland,
  64.                   New Zealand.
  65.      
  66.     Internet:     swaz@iconz.co.nz (private)
  67.               or  msd@iconz.co.nz
  68.     Please include the following information in your registration:
  69.        o your name, address (including any electronic mail addresses you
  70.            might have) and telephone number
  71.        o your Amiga model(s)
  72.        o Kickstart and Workbench versions
  73.        o the AlertPatch version number (currently 3.0)
  74.     I assure you that the information you send me will be treated
  75.     confidentially.
  76.     I will try and inform everybody, who has registered with me as
  77.     described above, when a new version of AlertPatch becomes available.
  78.     If you have sent a shareware donation, if possible, you will recieve
  79.     an update through mail (preferably email).
  80.     Thank you very much in advance !
  81. @ENDNODE
  82. -------------------------------------------------------------------------------
  83. @NODE Introduction "A brief rundown..."
  84. Introduction
  85. ************
  86.     AlertPatch is simply a patch into the exec.library/Alert()
  87.     function to display more meaningful information to the user.
  88.     There is a variety of information provided at the time the
  89.     alert is displayed:
  90.     Alert Type          - Software Failure or DeadEnd.
  91.     Task                - Task address and name.
  92.     Error               - The alert error being displayed.
  93.     Caused By           - If the calling routines are known then
  94.                           this will tell you where the problem
  95.                           lies (eg. "graphics.library")
  96.     Cause               - Single line description of what the alert
  97.                           is all about.
  98.     Task Owner          - if @{" MultiUser FileSystem " LINK MUFS } is installed then
  99.                           the userID and userName are also displayed.
  100.     Data Registers      - A dump of the CPU data registers d0...d7
  101.     Address Registers   - A dump of the CPU address registers a0...a7
  102.     Text Representation - This is the text representation of the data
  103.                           and address registers. Non-printable ascii
  104.                           characters are shown as "."
  105.     To generate the above information, approximately 600 bytes of
  106.     stack are required. This "large" amount of stack usage to
  107.     build the alert text will cause problems if we are low on stack.
  108.     If this is a problem then increase the stacksize of the
  109.     task causing the alert, of course getting an alert "usually"
  110.     means there is something wrong anyhow so this may not always work.
  111. @ENDNODE
  112. -------------------------------------------------------------------------------
  113. @NODE Installation "How to install and run AlertPatch..."
  114. Installation
  115. ************
  116.     Double click on the install icon
  117.     Localization Information:
  118.       You may select which languages are to be installed for AlertPatch during
  119.       the installation. If there is no translation provided for your preferred
  120.       language then you may make your own catalog from the @{" alertpatch.cd " LINK alertpatch.cd/MAIN } file.
  121.       You will need the program "CatComp" to build the catalog file
  122.       alertpatch.catalog. Please refer to CatComp documentation for further
  123.       information.
  124.       CatComp is Copyright Commodore Amiga Inc.
  125. @ENDNODE
  126. -------------------------------------------------------------------------------
  127. @NODE Usage "How to use AlertPatch"
  128. How To Use AlertPatch
  129. **********************
  130.     o To install AlertPatch simply double click on the icon.
  131.     o Double clicking again on the AlertPatch icon will bring up a window
  132.       listing all Alerts with descriptions known by AlertPatch. You may
  133.       add to this list yourself (see @{" Alert list " LINK AFF } ).
  134.       @{" Details on Main Window " LINK AlertListWindow }.
  135.     o To remove AlertPatch click on the Quit button
  136.     Additional configuration options and features:
  137.     @{" CLI/ToolTypes " LINK Cli }
  138.     @{" Sounds        " LINK MSDSounds }
  139.     @{" ARexx         " LINK ARexx }
  140. @ENDNODE
  141. -------------------------------------------------------------------------------
  142. @NODE ARexx "ARexx command summary..."
  143. ARexx
  144. *****
  145.     AlertPatch adds an ARexx port named "ALERTPATCH" to the system.
  146.     Supported commands are:
  147.       QUIT   - Quit from AlertPatch
  148.       SHOW   - Show the AlertPatch interface
  149.       HIDE   - Hide the AlertPatch interface
  150.       ALERT <HexNumber> - cause the specified alert to occur.
  151. @ENDNODE
  152. -------------------------------------------------------------------------------
  153. @NODE Cli "Command Line Usage and Workbench ToolTypes"
  154. ToolTypes & CLI Arguments
  155. *************************
  156.     Supported arguments/tooltypes are:
  157.       Standard Commodity arguments:
  158.         CX_POPKEY
  159.         CX_POPUP
  160.         CX_PRIORITY
  161.       Specific to AlertPatch:
  162.         FONT        - the name and size of the font to use for gadgets.
  163.                       If not specified then the default system front is used.
  164.                       eg. FONT="topaz 8"
  165.     Settings specific to AlertPatch may be chosen by selecting from the
  166.     main AlertPatch window the @{" Settings " LINK Configure } button.
  167. @ENDNODE
  168. -------------------------------------------------------------------------------
  169. @NODE AlertListWindow "Alert List Window and Configuring Alert Mode"
  170. Alert List Window and Configuration
  171. ***********************************
  172.     When AlertPatch is run from Workbench and it is currently installed,
  173.     or the command line argument of WINDOW is specified, a window listing
  174.     all the alerts is opened.
  175.     THE LIST       - double clicking on an entry in the list will
  176.                      generate the Alert. @{"***BE VERY CAREFUL***" LINK Why} If the
  177.                      alert is a DEADEND alert then you may reset your
  178.                      computer. If you have chosen the Window Alert then
  179.                      it is advisable to select CONTINUE unless you *WANT*
  180.                      to suspend "AlertPatch" or "Reset" your machine.
  181.                    - You may also use the arrow keys to move up and down
  182.                      the list and press return to select an entry.
  183.     The Buttons
  184.     ***********
  185.       Quit         - remove the AlertPatch Alert function and restore the
  186.                      original system Alert() function.
  187.     @{" About " LINK About }       - some information about AlertPatch
  188.     @{" Settings " LINK Configure}    - set/save the configuration
  189.       Ok           - close the AlertPatch window
  190. @ENDNODE
  191. -------------------------------------------------------------------------------
  192. @NODE About "Just some shareware information...."
  193. The About Window
  194. ****************
  195.     This window tells you information about the current version of
  196.     AlertPatch and some information on @{" Shareware & Registration " LINK Conditions }
  197. @ENDNODE
  198. -------------------------------------------------------------------------------
  199. @NODE Configure "How to configure AlertPatch..."
  200. Configuration Information
  201. *************************
  202.     This is where you select what sort of Alert you would like plus some
  203.     extended features available for that particular alert type.
  204.     Settings:
  205.         Render Method    - the type of alert you wish to have displayed.
  206.                              @{" NORMAL         " LINK Normal }   Use System Alerts
  207.                              @{" CUSTOM         " LINK Custom }   Use Custom Alerts
  208.                              @{" WINDOW         " LINK Window }   Use Window Alerts
  209.                         
  210.         Call exec Vector - will also call the original
  211.                            exec.library/Alert() function
  212.        @{" Sounds " LINK MSDSounds }         - turn sounds on/off. (Sounds are only available
  213.                            for the custom and window alert modes.
  214.         Timeout          - number of vertical blanks before the alert
  215.                            should timeout. This is not available for
  216.                            Standard alerts, or Custom alerts on pre
  217.                            kickstart V39.
  218.         Logfile enabled  - if set AlertPatch will write a log of all
  219.                            the alerts generated. See also @{" Logfile " LINK Logfile }
  220.        @{" Configure logfile " LINK Logfile } - set the logfile name and
  221.                            other logfile options.
  222.         Alert File       - additional alert descriptions may be provided
  223.                            in a text file. See @{" Alert File Format " LINK AFF }
  224.     Custom Alert Mouse Buttons:
  225.         Recovery (right) - what action to take when the RIGHT mouse
  226.                            button is pressed. It is to be noted that
  227.                            a left mouse button on a Recovery alert
  228.                            means continue.
  229.         Deadend (any)    - what action to take for a deadend alert.
  230.                            This is for any (either left or right)
  231.                            mouse button.
  232.     Window Alert Timeout Actions:
  233.         Recovery         - the action to take when timeout occurs on a
  234.                            recovery alert.
  235.         Deadend          - the action to take when timeout occurs on a
  236.                            deadend alert.
  237. @ENDNODE
  238. @NODE AFF "Alert File Format"
  239. Alert File Format
  240. *****************
  241.     The alert data file is a text file named "AlertPatchData"
  242.     residing in the current directory when AlertPatch is run, or a
  243.     user specified file.
  244.     One alertnumber and description may be specified per line in the
  245.     text file. You may use "#" to indicate at the start of a line to
  246.     indicate that it is a comment.
  247.     ---- Example File "AlertPatchData" ----
  248. #Example AlertData file
  249. 12345678 Numerical consistency warning
  250. 80102FF0 This is my own alert
  251.     ---- End Of File ----
  252. @ENDNODE
  253. @NODE Logfile "Keep track of alerts..."
  254. Logfile
  255. *******
  256.     If the logfile is enabled then when an alert occurs, AlertPatch will
  257.     attempt to write to the specified file information about the alert.
  258.     Is is strongly suggested that the file be located on a RamDisk or
  259.     other such device, as writing to disk during an alert could cause
  260.     possible errors in the filesystem, in order to reduce the chance of
  261.     filesystem corruption it is possible to not write the DEADEND (the most
  262.     serious) alerts to the file. Alternatively you may wish to output the
  263.     logfile to SER: (the serial.device) or PAR: (the parallel.device).
  264.     This choice is up to you.
  265.     LogFile                   - this sets the name for the logfile to be
  266.                                 written. Selecting the BUTTON or pressing
  267.                                 the HELP key in the string gadget will
  268.                                 use a filerequestor to get the logfilename.
  269.     Do not log DEADEND alerts - if set then AlertPatch will not log any
  270.                                 DEADEND alerts to the logfile. This may
  271.                                 reduce the chance of corrupting the logfile.
  272. @ENDNODE
  273. -------------------------------------------------------------------------------
  274. @NODE MSDSounds "Some audio to make alerts even more enjoyable..."
  275. MSD/UPD Sounds
  276. **************
  277.     AlertPatch will play sounds through a Sound Daemon such as MSD or
  278.     UPD. These add an Arexx port to the system called "PLAY" and the
  279.     following sound id's are sent to the port:
  280.       AlertPatch/Recoverable
  281.       AlertPatch/DeadEnd
  282.       AlertPatch/Continue
  283.       AlertPatch/Suspend
  284.     o Sounds are only available if the "MSD/UPD Sounds" is checked in
  285.       the configuration window and the alert mode is either custom or
  286.       window.
  287.     Acknowledgements
  288.     ****************
  289.     UPD is Copyright 
  290.  1991 Jonas Petersson & Absolute Software (aka Sirius Soft)
  291.     MSD is Copyright 
  292.  1992,93,94 David Swasbrook. (Not released yet)
  293. @ENDNODE
  294. -------------------------------------------------------------------------------
  295. @NODE Why "Why should you be careful?"
  296. Why you should be Very Careful
  297. ******************************
  298.     When you select an entry in the listview, AlertPatch will generate
  299.     an example alert by calling exec.library/Alert(). This functions
  300.     identically to when any other program calls exec.library/Alert().
  301.     And so if you select SUSPEND, AlertPatch will suspend itself, by
  302.     selecting REBOOT the system will reboot.
  303.     If you do select SUSPEND or REBOOT and the alert has been generated
  304.     by AlertPatch then a requestor will be displayed to make sure you
  305.     are aware of what you intend doing.
  306. @ENDNODE
  307. -------------------------------------------------------------------------------
  308. @NODE Normal "Information on the NORMAL mode of AlertPatch"
  309. Normal AlertPatch
  310. ******************
  311.     All alerts generated will be passed through to the original exec
  312.     library Alert() function before calling the specified patch routine.
  313. @ENDNODE
  314. -------------------------------------------------------------------------------
  315. @NODE Custom "Information on the CUSTOM mode of AlertPatch"
  316. Custom AlertPatch
  317. ******************
  318.     The custom option will produce a "flashy" alert using the normal
  319.     exec.library function Alert() but will contain all the information
  320.     as below in a slightly larger than normal flashy box.
  321.    ___________________________________________________________________________
  322.   |                                                                           |
  323.   |  Task : 0x079527D8 "AlertPatch"                                          |
  324.   | Error : 0x81000005 (DEADEND)                                              |
  325.   |    By : Exec library                                                      |
  326.   | Cause : Corrupt memory list detected in FreeMem()                         |
  327.   |                                                                           |
  328.   | D0:00000001 D1:01E4DB57 D2:00001000 D3:079608CC   ....  ...W  ....  ....  |
  329.   | D4:00000001 D5:00000001 D6:01E55BC9 D7:81000005   ....  ....  ..[.  ....  |
  330.   |                                                                           |
  331.   | A0:079608CC A1:0795F7C0 A2:07813A84 A3:07936D2A   ....  ....  ..:.  ..mo  |
  332.   | A4:079607B8 A5:00F92324 A6:07800804 A7:07904AA2   ....  ..#$  ....  ..J.  |
  333.   |___________________________________________________________________________|
  334.     The alert may be satisfied by timeout or by pressing either the LEFT
  335.     or RIGHT mouse button with the following effects:
  336.     For DEADEND Alerts
  337.     ******************
  338.     EITHER BUTTON: Use the configured settings for custom mode, by default
  339.                    this is reset.
  340.     For RECOVERABLE Alerts
  341.     **********************
  342.     LEFT BUTTON:   This is always Continue.
  343.     RIGHT BUTTON:  Use the configured settings for custom mode, by default
  344.                    this is reset.
  345.     For TIMEOUT
  346.     ***********
  347.     If the alert times out then the result is the same as would happen for
  348.     DEADEND and RECOVERABLE alerts (above) if the LEFT BUTTON was pressed.
  349. @ENDNODE
  350. -------------------------------------------------------------------------------
  351. @NODE Window "Information on the WINDOW mode of AlertPatch"
  352. Window AlertPatch
  353. ******************
  354.     Below is an example of what the window generated by AlertPatch looks
  355.     like (hey its the best i could manage with ascii :)
  356.    ___________________________________________________________________________
  357.   |   |                                                                   |   |
  358.   | O | Software Failure                                                  |   |
  359.   |___|___________________________________________________________________|___|
  360.   |                                                                           |
  361.   |  Task : 0x079527D8 "AlertPatch"                                          |
  362.   | Error : 0x81000005 (DEADEND)                                              |
  363.   |    By : Exec library                                                      |
  364.   | Cause : Corrupt memory list detected in FreeMem()                         |
  365.   |  User : root (David Swasbrook)                                            |
  366.   |                                                                           |
  367.   | D0:00000001 D1:01E4DB57 D2:00001000 D3:079608CC   ....  ...W  ....  ....  |
  368.   | D4:00000001 D5:00000001 D6:01E55BC9 D7:81000005   ....  ....  ..[.  ....  |
  369.   |                                                                           |
  370.   | A0:079608CC A1:0795F7C0 A2:07813A84 A3:07936D2A   ....  ....  ..:.  ..mo  |
  371.   | A4:079607B8 A5:00F92324 A6:07800804 A7:07904AA2   ....  ..#$  ....  ..J.  |
  372.   |                                                                           |
  373.   |___________________________________________________________________________|
  374.   |                                                                           |
  375.   |  @{" Continue " LINK Button_Continue}                   @{" Suspend  " LINK Button_Suspend}                    @{"  Reset   " LINK Button_Reset}  |
  376.   |___________________________________________________________________________|
  377.     NOTES:
  378.       o The "User :" field is only available if you have installed
  379.         @{" MultiUser filesystem " LINK MUFS }.
  380.       o If the system is too badly damaged then there is a high chance
  381.         that the window will not be displayed and the computer may lock up.
  382.         Use the @{" custom mode " LINK Custom} if you find this annoying.
  383. @ENDNODE
  384. -------------------------------------------------------------------------------
  385. @NODE Button_Continue "The CONTINUE button..."
  386. Continue Button
  387. ***************
  388.     The continue button allows task that caused the alert to continue
  389.     doing whatever it was doing. If you do this on a DEADEND alert
  390.     then you may find that the task will cause some serious problems and
  391.     you will end up rebooting.
  392. @ENDNODE
  393. -------------------------------------------------------------------------------
  394. @NODE Button_Suspend "The SUSPEND button..."
  395. Suspend Button
  396. **************
  397.     The suspend button simply puts the offending task to sleep. This is
  398.     achieved by calling the exec.library function Wait() with a NULL
  399.     for the signal mask.
  400.         moveq    #0,d0
  401.         SYSCALL    Wait
  402.     This effectivly stops the task from causing any more harm than it has
  403.     done.
  404. @ENDNODE
  405. -------------------------------------------------------------------------------
  406. @NODE Button_Reset "The RESET button..."
  407. Reset Button
  408. ************
  409.     The reset button will reboot using the exec.library function
  410.     ColdReboot().
  411. @ENDNODE
  412. -------------------------------------------------------------------------------
  413. @NODE Updates "All about updates..."
  414. Update Information
  415. ******************
  416.     I will try and further improve AlertPatch if I have time for it.
  417.     Registered users will at least get a notification when new versions of
  418.     AlertPatch get available that contain significant changes or enhancements.
  419.     New versions of AlertPatch will also be available on the Internet per
  420.     "anonymous FTP" (look on Aminet).
  421.     In order to be able to improve and/or correct AlertPatch, I would like to
  422.     ask every user to do the following:
  423.        o send me the registration fee of US$ 10
  424.        o send me bug reports, if you find any bugs
  425.        o give me hints how to improve AlertPatch
  426.     See @{" Shareware "    LINK Conditions } section for details on my mail address.
  427.     Thank you very much in advance !
  428. @ENDNODE
  429. -------------------------------------------------------------------------------
  430. @NODE PatchInfo "How to find AlertPatch..."
  431. How to detect AlertPatch -- A programmers perspective
  432. ******************************************************
  433.     AlertPatch may be found by finding the Semaphore named "AlertPatch"
  434.     which is the following structure:
  435.       STRUCTURE TheAlertPatch,ss_SIZEOF
  436.         UWORD    ap_Version
  437.         UWORD    ap_Revision
  438.         APTR     ap_VersionString
  439.         APTR     ap_OriginalVector
  440.         APTR     ap_NewVector
  441.             ;--- The following were added for V2.20
  442.         APTR     ap_DiskLogName
  443.         LABEL    ap_SIZEOF
  444. @ENDNODE
  445. -------------------------------------------------------------------------------
  446. @NODE MUFS "MultiUserFileSystem"
  447. MultiUserFileSystem
  448. *******************
  449.     Copyright 
  450.  Geert Uytterhoeven, All Rights Reserved.
  451.       You've got an  Amiga  with  Kickstart  2.04  or  higher and several
  452.     people are regularly fooling around with it ... Last week your sister
  453.     deleted your 20MB JPEG collection by  mistake and you don't want this
  454.     to happen again ... 
  455.     Well, here's the answer: MultiUser!
  456.       MultiUser allows you to create a *IX-like environment where several
  457.     users live together in harmony,  unable  to delete each others files,
  458.     unable to read  those  private  love-letters  of  other users ... And
  459.     this even if several  users  are  working  on the machine at the same
  460.     time (on a terminal hooked up to the serial port) ...
  461.       You are the sole  user  of  your computer? Well, make sure it stays
  462.     that way by installing MultiUser! People without a valid login ID and
  463.     password won't be  able  to  access  files you have made private with
  464.     MultiUser. If you make all  files  private (not readable for others),
  465.     the only useful thing they could do, is boot from a floppy ...
  466.       And ... you do not have to reformat your hard drive!
  467. @ENDNODE
  468. -------------------------------------------------------------------------------
  469. @NODE Thanks "List of contributors"
  470. Contributors
  471. ************
  472.     Thank you to the following translators:
  473.       fran
  474. ais  - Jean-Michel Bezeau
  475.     Thank you to the following who have sent in suggestions and
  476.     requests:
  477.       Carlos Amezaga
  478.     Thanks also to the following who reported bugs:
  479.       Denis Bucher
  480.     Beta testing performed by:
  481.       Daryl Jay
  482.     Also thanks to Osma Ahvenlampi for designing the MagicWB icon.
  483.     o I'm sorry if you have contributed and you name is not in the
  484.       above lists. I try to reply to all email so if you have sent
  485.       me some mail and not received a reply then it is more than
  486.       likely that my mailer sent it to nil: accidentally.
  487. @ENDNODE
  488. -------------------------------------------------------------------------------
  489. @NODE History "Whats been happening..."
  490. History Information
  491. *******************
  492. `V3.0'    o Commodities support
  493.     o Locale support
  494.     o Arexx support
  495.     o User definable alert numbers and descriptions
  496.     o Preferences interface changed
  497.     o The safe mode is no longer an option and detectes if an alert
  498.       is a test alert much better
  499.     o MagicWB style icon added
  500. `V2.31'    o Fixed email address
  501. `V2.30'    o Multiuser FileSystem support, displays the name of the owner of the
  502.       offending task (only if you are using MultiUser Filesystem)
  503.     o Locale support (Interface only)
  504. `V2.20'    o Now has safe option, this reduces the chance of accidentally suspending
  505.       AlertPatch or reseting the machine when you are testing alerts.
  506.     o Alerts may now be logged to a disk file
  507. `V2.19'    o Added timeout for Custom and Window Alerts
  508.     o Can call the old Alert function before a Custom or Window Alert.
  509. `V2.18'    o Added in configurable action for pressing the right mouse button for
  510.       Recoverable alerts, and either mouse button for DeadEnd alerts.
  511.     o The AlertPatch main window is disabled while "testing" alerts.
  512.     o Changed disclaimer and shareware documentation.
  513.     o Improved documentation about testing alerts.
  514.     o Added sounds to the window alert.
  515. `V2.17'    o Fixed to work under V37
  516. `V2.16'    o Initial release on Aminet.
  517.     o (Incorrectly documented as working under V37)
  518. @ENDNODE
  519.